package crypto.GM;

//使用dll放密钥
public class SM4dllUtil {
    //密钥索引keyidx（A001/a002/a003/a004/a005/a006，不区分大小写）
    public static native String sm4dllenc(String keyIdx, String ciphertext);

    public static native String sm4dlldec(String keyIdx, String ciphertext);

    static {
        try {
            System.loadLibrary("sm4evp_x64");  //加载java.library.path路径下由libname参数指定的文件，不需要拓展名
            //System.load("/absolute/path/to/your.dll");  //System.load 参数为库文件的绝对路径，可以是任意路径。
//            System.load(System.getProperty("user.dir") + "\\src\\main\\resources\\SM4Util\\sm4evp_x64.dll");
        } catch (UnsatisfiedLinkError e) {
            //包名不对会报错，可以用编辑器修改dll里的包名字段，但要保持长度一致。或者直接改包名。
            System.err.println("Cannot load UMSGM library:\n " + e.toString());
        }
    }

    public static void main(String[] args) {
//        System.getProperties().list(System.out);    //通过该命令可以获得系统预设参数Key

//        System.out.println(System.getProperty("java.library.path"));
        String en = sm4dllenc("A001","3000");
        System.out.println(en);
    }
}
